package managesystem;

import java.util.List;

import com.googlecode.objectify.Key;
import com.googlecode.objectify.Objectify;
import com.googlecode.objectify.ObjectifyService;
/**
 * Voert de calls uit naar de database.
 * 
 * @author Incalza Dario
 *
 */
 public class StudentManager {
	
	
	/**
	 * Voeg een student toe
	 * @param s toe te voegen student
	 */
	public static void add(Student s){
		
		Objectify ofy = ObjectifyService.begin();
		ofy.put(s);
		
	}
	/**
	 * Haal een student-object op met de username.
	 *
	 * @param un
	 * @return student-object : null als de student nog niet is aangemaakt.
	 */
	
	public static Student readStudentByUsername(String un){
		Objectify ofy = ObjectifyService.begin();
		Student s = ofy.query(Student.class).filter("username", un.trim()).get();
		if(s==null){
			return null;
		}
		else{
			return s;
		}

	}
	/**
	 * Verwijder een student-object door middel van het Object-Id
	 * 
	 * @param id van de te verwijderen student
	 */
	public static void deleteStudentById(Long id){
		
		Objectify ofy = ObjectifyService.begin();
		ofy.delete(new Key<Student>(Student.class,id));
		
	}
	/**
	 * vraag een lijst op van al de bestaande studenten
	 * @return lijst met bestaande student objecten
	 */
	
	public static List<Student> findAll(){
		Objectify ofy = ObjectifyService.begin();
		List<Student> studs = ofy.query(Student.class).list();
		
		return studs;
	}
	
}
